// store/modules/reviewReply.js
const state = {
  selectedPlatforms: [], // 当前选中的平台
  replyStatus: {}, // 各平台的回复状态（可选）
  dateRange: {
    // 新增日期范围存储
    start: null, // 格式: "YYYY-MM-DD"
    end: null,
  },
};

const mutations = {
  // 关键修改：使用新数组替换而非直接赋值
  SET_SELECTED_PLATFORMS(state, platforms) {
    // 方法1：创建新数组（推荐）
    state.selectedPlatforms = [...platforms];
    console.log(`【Vuex更新】选中平台更新为: ${platforms.join(", ")}`);
    // 或者方法2：使用Vue.set确保响应式
    // Vue.set(state, 'selectedPlatforms', [...platforms]);
  },
  // 新增日期范围 mutation
  SET_DATE_RANGE(state, { start, end }) {
    state.dateRange = {
      start: start || null,
      end: end || null,
    };
    console.log(`[Vuex] 日期范围更新: ${start} 至 ${end}`);
  },
};

const actions = {
  updateSelectedPlatforms({ commit }, platforms) {
    commit("SET_SELECTED_PLATFORMS", platforms);
  },
  // 新增 action 处理日期范围
  updateDateRange({ commit }, dateRange) {
    if (!dateRange || dateRange.length !== 2) {
      throw new Error("必须提供完整的日期范围数组");
    }
    commit("SET_DATE_RANGE", {
      start: this._vm.$options.methods.formatDate(dateRange[0]), // 直接调用组件方法
      end: this._vm.$options.methods.formatDate(dateRange[1]),
    });
  },
};

const getters = {
  // 修正getters逻辑，移除对state.ratingInfos的引用
  selectedPlatforms: (state) => {
    return state.selectedPlatforms;
  },
  selectedPlatformsCount: (state) => {
    return state.selectedPlatforms.length;
  },
  // 如需根据ID获取平台，应从组件传入的数据源获取，而非state中
};

export default {
  namespaced: true,
  state,
  mutations,
  actions,
  getters,
};
